]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
StButton: fix handling of Space/Enter -> click
authorDan Winship <danw@gnome.org>
Mon, 21 Mar 2011 12:21:18 +0000 (08:21 -0400)
committerDan Winship <danw@gnome.org>
Mon, 21 Mar 2011 14:18:46 +0000 (10:18 -0400)
StButton was mistakenly considering any Space/Enter KEY_RELEASE to be
a click, when in fact it should only count as a click if it also got
the corresponding KEY_PRESS as well. This meant that when typing in a
chat notification, any Space/Enter keypress would dismiss the
notification, since the StEntry would take the PRESS event but ignore
the RELEASE, allowing it to propagate to the notification itself,
which would treat it as a click.

https://bugzilla.gnome.org/show_bug.cgi?id=645243

src/st/st-button.c

index 56842679e0f26aa6e8d0d17d5bb20bd279753add..47647cfb50daf61ac3b3c0c5348ca7baef8d2e1d 100644 (file)
@@ -232,7 +232,10 @@ st_button_key_release (ClutterActor    *actor,
       if (event->keyval == CLUTTER_KEY_space ||
           event->keyval == CLUTTER_KEY_Return)
         {
-          st_button_release (button, ST_BUTTON_ONE, 1);
+          gboolean is_click;
+
+          is_click = (button->priv->pressed & ST_BUTTON_ONE);
+          st_button_release (button, ST_BUTTON_ONE, is_click ? 1 : 0);
           return TRUE;
         }
     }